package NewCoder;

public class BM2 {
    public ListNode reverseKGroup (ListNode head, int k) {
        // write code here
        if(head==null || head.next==null || k==1) return head;
        int len=0;
        ListNode dummyHead=new ListNode(-1);
        dummyHead.next=head;
        ListNode pre=dummyHead;
        ListNode cur=head;
        ListNode next=null;

        while(head!=null){
            len++;
            head=head.next;
        }
        for(int i=0;i<len/k;i++){
            for(int j=1;j<k;j++){
                next=cur.next;
                cur.next=next.next;
                next.next=pre.next;
                pre.next=next;
            }
            pre=cur;
            cur=cur.next;
        }
        return dummyHead.next;
    }
}
